/* ==================================================================   
 * Created [2009-4-27 下午11:32:55] by Jon.King 
 * ==================================================================  
 * TSS 
 * ================================================================== 
 * mailTo:jinpujun@hotmail.com
 * Copyright (c) Jon.King, 2009-2012 
 * ================================================================== 
*/

package com.jinhe.tss.cms.dao;

import java.util.Date;
import java.util.List;

import com.jinhe.tss.component.support.persistence.pagequery.PageInfo;
import com.jinhe.tss.core.persistence.IDao;
import com.jinhe.tss.core.persistence.IEntity;
 
/**
 * 和文章相关的信息操作：比如评论、打分、附件等
 */
public interface IArticleRelationDao extends IDao<IEntity> {

	/**
	 * 得到符合统计条件的文章的id
	 * <p>
	 * @param startTime
	 * @param endTime
	 * @param author
	 * @return
	 */
	List<Long> getArticleIdList(Date startTime, Date endTime, String author);
	
	/**
	 * <p>
	 * 得到文章作者统计信息列表
	 * </p>
	 * @param startTime
	 * @param endTime
	 * @return
	 */
	List<?> getSummaryGroupByAuthor(Date startTime, Date endTime);
	
	/**
	 * <p>
	 * 得到站点、栏目访问量统计信息
	 * </p>
	 * @param startTime
	 * @param endTime
	 * @return
	 */
	List<?> getSummaryGroupByChannel(Date startTime, Date endTime);
	
	/**
	 * <p>
	 * 得到评论信息列表
	 * </p>
	 * @param pageNum 
	 * @return
	 */
	PageInfo getCommentsList(Long articleId, Integer pageNum);
	
	/**
	 * <p>
	 * 得到评论查询列表
	 * </p>
	 * @param keyword
	 * @param pageNum 
	 * @return
	 */
	PageInfo getCommentsList4Search(String keyword, Integer pageNum);
	
	/**
	 * <p>
	 * 得到栏目下文章数量
	 * </p>
	 * @param channelId
	 * @param startTime 
	 * @param endTime 
	 * @return
	 */
	Integer getChannelArtilceCount(Long channelId, Date startTime, Date endTime);
	
	/**
	 * <p>
	 * 得到栏目下文章的平均分
	 * </p>
	 * @param channelId
	 * @param startTime 
	 * @param endTime 
	 * @return
	 */
	List<?> getAverageScoreByChannel(Long channelId, Date startTime, Date endTime);
	
	/**
	 * <p>
	 * 得到作者文章平均分
	 * </p>
	 * @param author
	 * @param startTime
	 * @param endTime
	 * @return
	 */
	List<?> getAverageScoreByAuthor(String author, Date startTime, Date endTime);
}

	